package com.empire.module.member.controller.admin.mappolygon.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 地图多边形信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MapPolygonRespVO {

    @Schema(description = "多边形ID（UUID）", requiredMode = Schema.RequiredMode.REQUIRED, example = "13603")
    @ExcelProperty("多边形ID（UUID）")
    private String id;

    @Schema(description = "关联配置ID（关联member_map_config.id）", requiredMode = Schema.RequiredMode.REQUIRED, example = "6310")
    @ExcelProperty("关联配置ID（关联member_map_config.id）")
    private String configId;

    @Schema(description = "多边形名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("多边形名称")
    private String name;

    @Schema(description = "描边颜色（16进制色值）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("描边颜色（16进制色值）")
    private String strokeColor;

    @Schema(description = "描边宽度（单位：像素，范围：1~20）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("描边宽度（单位：像素，范围：1~20）")
    private Integer strokeWeight;

    @Schema(description = "填充颜色（16进制色值）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("填充颜色（16进制色值）")
    private String fillColor;

    @Schema(description = "填充透明度（范围：0.00~1.00）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("填充透明度（范围：0.00~1.00）")
    private BigDecimal fillOpacity;

    @Schema(description = "层级（值越大越靠上，范围：1~100）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("层级（值越大越靠上，范围：1~100）")
    private Integer zIndex;

    @Schema(description = "排序（升序排列）", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("排序（升序排列）")
    private Integer sortOrder;

    @Schema(description = "多边形面积（单位：平方米，自动计算）")
    @ExcelProperty("多边形面积（单位：平方米，自动计算）")
    private BigDecimal area;

    @Schema(description = "顶点数量（自动计算）", example = "24692")
    @ExcelProperty("顶点数量（自动计算）")
    private Integer pointCount;

}